// 编写程序，求满足公式的变量k的最大值：
// 		2^k <= m
// 其中，m是程序输入的一个正整数。

// 2^k表示2的k次方。

// 输入输出格式要求：
// 	输入格式：m回车
// 	程序中要求全部使用unsigned int 类型数据。scanf和printf中使用%u
// 	只输出运算结果，请不要输出其他字符。
// 例如：
// 输入：16回车
// 输出：4
// 输入：2140000000回车
// 输出：30

#include <stdio.h>

int main()
{
    unsigned int m = 0, k = 0;
    scanf("%u", &m);
    //注：计算2^k再判断2^k <= m可能超时，扣分信息如下：
    //扣分:25	When test group(4) step(1),the input is (4294967295 ),time out.
    while (m > 0)
    {
        k++;
        m /= 2;
    }
    printf("%u", --k);
    return 0;
}

// 提交记录：
// 92
// 3.9 2的k次方小于m的k的最大值
// C++
// 2024-07-02 14:45:50.0
// score
// 100

// Written By Sibei